package org.mall.modules.system.controller;


import org.mall.common.constant.CommonConstant;
import org.mall.common.constant.ParamsColumnNameConstant;
import org.mall.modules.pojo.sys.params.SysAppParams;
import org.mall.modules.pojo.sys.params.SysFianceParams;
import org.mall.modules.pojo.sys.params.SysSMSParams;
import org.mall.modules.pojo.sys.params.SystemParamsDTO;

import java.util.ArrayList;
import java.util.List;

public class SystemParamsConvertUtil {

    public static SysAppParams getAppParams(List<SystemParamsDTO> systemParamsDTOS){
        SysAppParams sysAppParams=new SysAppParams();
        if (!systemParamsDTOS.stream().allMatch( o->{
            return CommonConstant.APP_VERSION_PARAMS_TYPE==o.getType();
        })){
            return sysAppParams;
        }

        for (SystemParamsDTO systemParamsDTO:systemParamsDTOS){
            if (systemParamsDTO.getName().equals(ParamsColumnNameConstant.ANDROID_VERSION)){
                sysAppParams.setAndroidVersion(systemParamsDTO.getValue());
                sysAppParams.setCreateTime(systemParamsDTO.getCreateTime());
            }
            if (systemParamsDTO.getName().equals(ParamsColumnNameConstant.ISO_VERSION)){
                sysAppParams.setIosVersion(systemParamsDTO.getValue());
            }
        }


        return sysAppParams;
    }



    public static SysFianceParams getSysFiancePrams(List<SystemParamsDTO> systemParamsDTOS){
        SysFianceParams sysFianceParams=new SysFianceParams();
        if (!systemParamsDTOS.stream().allMatch( o->{
            return CommonConstant.FINANCIAL_PARAMETERS_TYPE==o.getType();
        })){
            return sysFianceParams;
        }

        for (SystemParamsDTO systemParamsDTO:systemParamsDTOS){
            if (systemParamsDTO.getName().equals(ParamsColumnNameConstant.PAY_PRIVIVATE_LEY_Path)){
                sysFianceParams.setPrivateKeyPath(systemParamsDTO.getValue());
            }
            if (systemParamsDTO.getName().equals(ParamsColumnNameConstant.PAY_APP_ID)){
                sysFianceParams.setAppId(systemParamsDTO.getValue());
            }
        }

        return sysFianceParams;
    }


    public static SysSMSParams getSysSMSPrams(List<SystemParamsDTO> systemParamsDTOS){
        SysSMSParams sysSMSParams=new SysSMSParams();
        if (!systemParamsDTOS.stream().allMatch( o->{
            return CommonConstant.MESSAGE_PARAMS_TYPE==o.getType();
        })){
            return sysSMSParams;
        }

        for (SystemParamsDTO systemParamsDTO:systemParamsDTOS){
            if (systemParamsDTO.getName().equals(ParamsColumnNameConstant.SMS_ACCESS_KEY_ID)){
                sysSMSParams.setAccessKeyId(systemParamsDTO.getValue());
            }
            if (systemParamsDTO.getName().equals(ParamsColumnNameConstant.SMS_ACCESS_SECRET)){
                sysSMSParams.setAccessSecret(systemParamsDTO.getValue());
            }
        }

        return sysSMSParams;
    }




    public static  List<SystemParamsDTO>  convertToSysParams(SysSMSParams sysSMSParams){
        SystemParamsDTO systemParamsDTO=new SystemParamsDTO();
        systemParamsDTO.setName(ParamsColumnNameConstant.SMS_ACCESS_KEY_ID);
        systemParamsDTO.setValue(sysSMSParams.getAccessKeyId());
        systemParamsDTO.setType(CommonConstant.MESSAGE_PARAMS_TYPE);
        List<SystemParamsDTO> list=new ArrayList<>();
        list.add(systemParamsDTO);
        systemParamsDTO=new SystemParamsDTO();
        systemParamsDTO.setName(ParamsColumnNameConstant.SMS_ACCESS_SECRET);
        systemParamsDTO.setValue(sysSMSParams.getAccessSecret());
        systemParamsDTO.setType(CommonConstant.MESSAGE_PARAMS_TYPE);
        list.add(systemParamsDTO);

        return list;
    }

    public static  List<SystemParamsDTO> convertToSysParams(SysFianceParams sysFianceParams){
        SystemParamsDTO systemParamsDTO=new SystemParamsDTO();
        systemParamsDTO.setName(ParamsColumnNameConstant.PAY_APP_ID);
        systemParamsDTO.setValue(sysFianceParams.getAppId());
        systemParamsDTO.setType(CommonConstant.FINANCIAL_PARAMETERS_TYPE);

        List<SystemParamsDTO> list=new ArrayList<>();

        list.add(systemParamsDTO);
        systemParamsDTO=new SystemParamsDTO();
        systemParamsDTO.setName(ParamsColumnNameConstant.PAY_PRIVIVATE_LEY_Path);
        systemParamsDTO.setValue(sysFianceParams.getPrivateKeyPath());
        systemParamsDTO.setType(CommonConstant.FINANCIAL_PARAMETERS_TYPE);

        list.add(systemParamsDTO);

        return list;

    }
    public static List<SystemParamsDTO>  convertToSysParams(SysAppParams sysSMSParams){
        SystemParamsDTO systemParamsDTO=new SystemParamsDTO();
        systemParamsDTO.setName(ParamsColumnNameConstant.ANDROID_VERSION);
        systemParamsDTO.setValue(sysSMSParams.getAndroidVersion());
        systemParamsDTO.setType(CommonConstant.APP_VERSION_PARAMS_TYPE);
        List<SystemParamsDTO> list=new ArrayList<>();
        list.add(systemParamsDTO);
        systemParamsDTO=new SystemParamsDTO();
        systemParamsDTO.setType(CommonConstant.APP_VERSION_PARAMS_TYPE);
        systemParamsDTO.setName(ParamsColumnNameConstant.ISO_VERSION);
        systemParamsDTO.setValue(sysSMSParams.getIosVersion());
        list.add(systemParamsDTO);

        return list;

    }
}